﻿using S.Common.Enums.Archives;
using S.Common.Enums.Initial;
using S.Common.Enums.Organization;
using S.EliminationOrDath.Domain.Enums;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

namespace S.EliminationOrDath.API.Dtos
{
    /// <summary>
    /// 淘汰Dto
    /// </summary>
    public class EliminationDtos
    {
        /// <summary>
        /// 淘汰编号
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int EliminationId { get; set; }
        /// <summary>
        /// 可视耳号
        /// </summary>
        [StringLength(30)]
        public string? EarTag { get; set; }
        /// <summary>
        /// 品种
        /// </summary>
        public VarietyEnum VarietyEnum { get; set; }
        /// <summary>
        /// 类型
        /// </summary>
        public Types Types { get; set; }
        /// <summary>
        /// 当前栋舍
        /// </summary>
        public string? TurnOutBuild { get; set; }
        /// <summary>
        /// 当前栏位
        /// </summary>
        public string? TurnOutHuts { get; set; }
        /// <summary>
        /// 转入栋舍
        /// </summary>
        public string? ShiftToBuild { get; set; }
        /// <summary>
        /// 转入栏位
        /// </summary>
        public string? ShiftToHuts { get; set; }
        /// <summary>
        /// 离场状态
        /// </summary>
        public bool DepartureState { get; set; }//true已离场，false在场
        /// <summary>
        /// 淘汰日期
        /// </summary>
        public DateTime PhaseOutDate { get; set; }
        /// <summary>
        /// 淘汰原因
        /// </summary>
        public PhaseOutReason PhaseOutReason { get; set; }
        /// <summary>
        /// 处理措施
        /// </summary>
        public TreatmentMeasure TreatmentMeasure { get; set; }
        /// <summary>
        /// 单据号
        /// </summary>
        [StringLength(100)]
        public string? DocumentNumber { get; set; }
        /// <summary>
        /// 流水号
        /// </summary>
        [StringLength(100)]
        public string? SerialNumber { get; set; }
        /// <summary>
        /// 备注
        /// </summary>
        [StringLength(500)]
        public string? EliminationRemark { get; set; }
        /// <summary>
        /// 栋舍类型
        /// </summary>
        public BuildingEnum BuildingEnum { get; set; }
        #region 取消审核字段

        /// <summary>
        /// 修改状态
        /// </summary>
        public int ustate { get; set; }
        /// <summary>
        /// 修改档案状态
        /// </summary>
        public int SheepStatuss { get; set; }

        #endregion
        /// <summary>
        /// 复核人
        /// </summary>
        [StringLength(30)]
        public string? Reviewer { get; set; }
        /// <summary>
        /// 复核时间
        /// </summary>
        public DateTime? ReviewTime { get; set; }
        /// <summary>
        /// 创建人
        /// </summary>
        [StringLength(30)]
        public string? CreateBy { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        public DateTime? CreateDate { get; set; }
        /// <summary>
        /// 修改人
        /// </summary>
        [StringLength(30)]
        public string? UpdateBy { get; set; }
        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime? UpdateDate { get; set; }
        /// <summary>
        /// 逻辑删除
        /// </summary>
        public bool LogicalDeletion { get; set; }//true删除,false未删除
    }
}
